package com.abewy.android.apps.klyph.core.fql; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import android.os.Parcel; import android.os.Parcelable; import com.abewy.android.apps.klyph.core.fql.Stream.CommentInfo; import com.abewy.android.apps.klyph.core.graph.GraphObject; public class Photo extends GraphObject implements Parcelable { private String aid; private String aid_cursor; private String album_object_id; private String album_object_id_cursor; private String album_name; private String backdated_time; private String backdated_time_granularity; private boolean can_backdate; private boolean can_delete; private boolean can_tag; private String caption; private String caption_tags; private CommentInfo comment_info; private String created; private List<Image> images; private LikeInfo like_info; private String link; private String modified; private String object_id; private String offline_id; private String owner; private String owner_name; private String owner_type; private String owner_pic; private String owner_cursor; private String page_story_id; private String pid; private String place_id; private String place_name; private String src; private String src_big; private int src_big_height; private int src_big_width; private int src_height; private String src_small; private int src_small_height; private int src_small_width; private int src_width; private String target_id; private String target_name; private String target_type; public Photo() { } public int getItemViewType() { return GraphObject.PHOTO; } // ___ Public services _____________________________________________________ public String getLargestImageURL() { if (images.size() > 0) { Collections.sort(getImages(), new Comparator<Image>() { @Override public int compare(Image lhs, Image rhs) { if (lhs.getWidth() < rhs.getWidth()) return 1; else if (lhs.getWidth() > rhs.getWidth()) return -1; return 0; } }); return images.get(0).getSource(); } return null; } // ___ Public getter/setter public String getAid() { return aid; } public void setAid(String aid) { this.aid = aid; } public String getAid_cursor() { return aid_cursor; } public void setAid_cursor(String aid_cursor) { this.aid_cursor = aid_cursor; } public String getAlbum_object_id() { return album_object_id; } public void setAlbum_object_id(String album_object_id) { this.album_object_id = album_object_id; } public String getAlbum_object_id_cursor() { return album_object_id_cursor; } public void setAlbum_object_id_cursor(String album_object_id_cursor) { this.album_object_id_cursor = album_object_id_cursor; } public String getAlbum_name() { return album_name; } public void setAlbum_name(String album_name) { this.album_name = album_name; } public String getBackdated_time() { return backdated_time; } public void setBackdated_time(String backdated_time) { this.backdated_time = backdated_time; } public String getBackdated_time_granularity() { return backdated_time_granularity; } public void setBackdated_time_granularity(String backdated_time_granularity) { this.backdated_time_granularity = backdated_time_granularity; } public boolean getCan_backdate() { return can_backdate; } public void setCan_backdate(boolean can_backdate) { this.can_backdate = can_backdate; } public boolean getCan_delete() { return can_delete; } public void setCan_delete(boolean can_delete) { this.can_delete = can_delete; } public boolean getCan_tag() { return can_tag; } public void setCan_tag(boolean can_tag) { this.can_tag = can_tag; } public String getCaption() { return caption; } public void setCaption(String caption) { this.caption = caption; } public String getCaption_tags() { return caption_tags; } public void setCaption_tags(String caption_tags) { this.caption_tags = caption_tags; } public CommentInfo getComment_info() { return comment_info; } public void setComment_info(CommentInfo comment_info) { this.comment_info = comment_info; } public String getCreated() { return created; } public void setCreated(String created) { this.created = created; } public List<Image> getImages() { return images; } public void setImages(List<Image> images) { this.images = images; } public LikeInfo getLike_info() { return like_info; } public void setLike_info(LikeInfo like_info) { this.like_info = like_info; } public String getLink() { return link; } public void setLink(String link) { this.link = link; } public String getModified() { return modified; } public void setModified(String modified) { this.modified = modified; } public String getObject_id() { return object_id; } public void setObject_id(String object_id) { this.object_id = object_id; } public String getOffline_id() { return offline_id; } public void setOffline_id(String offline_id) { this.offline_id = offline_id; } public String getOwner() { return owner; } public void setOwner(String owner) { this.owner = owner; } public String getOwner_name() { return owner_name; } public void setOwner_name(String owner_name) { this.owner_name = owner_name; } public String getOwner_type() { return owner_type; } public void setOwner_type(String owner_type) { this.owner_type = owner_type; } public String getOwner_pic() { return owner_pic; } public void setOwner_pic(String owner_pic) { this.owner_pic = owner_pic; } public String getOwner_cursor() { return owner_cursor; } public void setOwner_cursor(String owner_cursor) { this.owner_cursor = owner_cursor; } public String getPage_story_id() { return page_story_id; } public void setPage_story_id(String page_story_id) { this.page_story_id = page_story_id; } public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } public String getPlace_id() { return place_id; } public void setPlace_id(String place_id) { this.place_id = place_id; } public String getPlace_name() { return place_name; } public void setPlace_name(String place_name) { this.place_name = place_name; } public String getSrc() { return src; } public void setSrc(String src) { this.src = src; } public String getSrc_big() { return src_big; } public void setSrc_big(String src_big) { this.src_big = src_big; } public int getSrc_big_height() { return src_big_height; } public void setSrc_big_height(int src_big_height) { this.src_big_height = src_big_height; } public int getSrc_big_width() { return src_big_width; } public void setSrc_big_width(int src_big_width) { this.src_big_width = src_big_width; } public int getSrc_height() { return src_height; } public void setSrc_height(int src_height) { this.src_height = src_height; } public String getSrc_small() { return src_small; } public void setSrc_small(String src_small) { this.src_small = src_small; } public int getSrc_small_height() { return src_small_height; } public void setSrc_small_height(int src_small_height) { this.src_small_height = src_small_height; } public int getSrc_small_width() { return src_small_width; } public void setSrc_small_width(int src_small_width) { this.src_small_width = src_small_width; } public int getSrc_width() { return src_width; } public void setSrc_width(int src_width) { this.src_width = src_width; } public String getTarget_id() { return target_id; } public void setTarget_id(String target_id) { this.target_id = target_id; } public String getTarget_name() { return target_name; } public void setTarget_name(String target_name) { this.target_name = target_name; } public String getTarget_type() { return target_type; } public void setTarget_type(String target_type) { this.target_type = target_type; } public static class Image extends GraphObject implements Parcelable { private String source; private int width; private int height; public Image() { } public String getSource() { return source; } public void setSource(String source) { this.source = source; } public int getWidth() { return width; } public void setWidth(int width) { this.width = width; } public int getHeight() { return height; } public void setHeight(int height) { this.height = height; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(source); dest.writeInt(width); dest.writeInt(height); } public static final Parcelable.Creator<Image> CREATOR = new Parcelable.Creator<Image>() { public Image createFromParcel(Parcel in) { return new Image(in); } public Image[] newArray(int size) { return new Image[size]; } }; private Image(Parcel in) { source = in.readString(); width = in.readInt(); height = in.readInt(); } } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(aid); dest.writeString(aid_cursor); dest.writeString(album_object_id); dest.writeString(album_object_id_cursor); dest.writeString(backdated_time); dest.writeString(backdated_time_granularity); dest.writeByte((byte) (can_backdate ? 0x01 : 0x00)); dest.writeByte((byte) (can_delete ? 0x01 : 0x00)); dest.writeByte((byte) (can_tag ? 0x01 : 0x00)); dest.writeString(caption); dest.writeString(caption_tags); dest.writeParcelable(comment_info, PARCELABLE_WRITE_RETURN_VALUE); dest.writeString(created); dest.writeTypedList(images); dest.writeParcelable(like_info, PARCELABLE_WRITE_RETURN_VALUE); dest.writeString(link); dest.writeString(modified); dest.writeString(object_id); dest.writeString(offline_id); dest.writeString(owner); dest.writeString(owner_name); dest.writeString(owner_type); dest.writeString(owner_pic); dest.writeString(owner_cursor); dest.writeString(page_story_id); dest.writeString(pid); dest.writeString(place_id); dest.writeString(place_name); dest.writeString(src); dest.writeString(src_big); dest.writeInt(src_big_height); dest.writeInt(src_big_width); dest.writeInt(src_height); dest.writeString(src_small); dest.writeInt(src_small_height); dest.writeInt(src_small_width); dest.writeInt(src_width); dest.writeString(target_id); dest.writeString(target_name); dest.writeString(target_type); } public static final Parcelable.Creator<Photo> CREATOR = new Parcelable.Creator<Photo>() { public Photo createFromParcel(Parcel in) { return new Photo(in); } public Photo[] newArray(int size) { return new Photo[size]; } }; protected Photo(Parcel in) { aid = in.readString(); aid_cursor = in.readString(); album_object_id = in.readString(); album_object_id_cursor = in.readString(); backdated_time = in.readString(); backdated_time_granularity = in.readString(); can_backdate = in.readByte() != 0x00; can_delete = in.readByte() != 0x00; can_tag = in.readByte() != 0x00; caption = in.readString(); caption_tags = in.readString(); comment_info = in.readParcelable(CommentInfo.class.getClassLoader()); created = in.readString(); images = new ArrayList<Image>(); in.readTypedList(images, Image.CREATOR); like_info = in.readParcelable(LikeInfo.class.getClassLoader()); link = in.readString(); modified = in.readString(); object_id = in.readString(); offline_id = in.readString(); owner = in.readString(); owner_name = in.readString(); owner_type = in.readString(); owner_pic = in.readString(); owner_cursor = in.readString(); page_story_id = in.readString(); pid = in.readString(); place_id = in.readString(); place_name = in.readString(); src = in.readString(); src_big = in.readString(); src_big_height = in.readInt(); src_big_width = in.readInt(); src_height = in.readInt(); src_small = in.readString(); src_small_height = in.readInt(); src_small_width = in.readInt(); src_width = in.readInt(); target_id = in.readString(); target_name = in.readString(); target_type = in.readString(); } }